Linux 信号 |
您所在的位置:网站首页 › linux 信号量使用用例 › Linux 信号 |
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情 信号信号是一种比较复杂的通信方式,信号产生的条件:按键、硬件异常、进程调用kill函数将信号发送给另一个进程、用户调用kill命令将信号发送给其他进程,传递的消息比较少用于通知接收进程某个时间已经发生。 不能跨局域网,而且信息量少。 消息队列消息队列是消息的链表,存放在内核中并由消息队列标识符标识,消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点。 不建议使用,现在很多成熟的消息队列。 共享内存共享存储是最高效的IPC机制,因为不涉及进程之间的任何数据传输,但是必须辅助其他方式(比如信号量)来同步进程对共享内存的访问,否则会产生竞态条件(race condition)。共享内存适合实现进程间共享的、非常庞大的、读写操作频率很高的数据(配合信号量使用);这种方式通常适用于多进程间通信 。无须复制,快捷、信息量大是其优点。 套接字 socket套接字可用于不同及其间的进程通信。可以跨局域网适应分布式的需求。首选socket来实现进程间通信。 常见信号显示所有的信号:kill -l signum信号处理方式来源2SIGINTterminate来自键盘中断 ctr+C6SIGABRTterminateassert 触发11SIGSEGVdump无效的内存引用14SIGALRMterminate定时器信号9SIGKILLterminate强迫进程终止 kill-915SIGTERMterminate进程终止(不带参数时Kill 默认发送的信号)19SIGSTOPstop停止进程执行13SIGPIPEterminate向已经关闭的管道写数据17SIGCHLDSIG_IGN子进程死亡 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |